package ca.etsmtl.log120.tp1.system;

/******************************************************
Cours : LOG120
Session : E2011
Groupe : 01
Projet : Laboratoire #2
Etudiants : Nicolas Blais Miko
 	 		Yohan Trepanier-Montpetit
Codes perm. : BLAN24079109
			  TREY16079108
Professeur : Chamseddine Talhi
Charge de labo : Eric Goulet
Nom du fichier : ShapeRequester.java
Date cree : 2011-05-25
Date dern. modif. 2015-05-25
*************************************************** ****
Historique des modifications
*************************************************** ****
2011-05-25 Version initiale (Yohan Trepanier)
***************************************************/

/**
 * Classe responsable de demander une forme a repetition
 */
public class ShapeRequester implements Runnable {

	ShapeCreator creator; 	//Le createur de formes
	private float delay;		//le delais entre les demandes, en secondes
	private int count;		//Variable pour compter 10 formes
	private boolean finished = false; //Fin du thread
	
	/**
	 * Consctructeur
	 * @param createur le createur de formes a utiliser
	 * @param delay Le delais entre les demandes (sec)
	 */
	public ShapeRequester(ShapeCreator createur, float delay){
		creator = createur;
		this.delay = delay; 
		count = 0;
	}
	
	@Override
	public void run() {
		
		//Tant que la fin n'a pas ete demandee
		while(!finished){
			
			if(count >= 10){ //Si on a demande 10 formes, on a termine la demande de formes
				finished = true;
				creator.closeConnection();
			}
			
			//on demande une forme
			creator.requestShape();
			
			//On incremente le compte
			count++;
			
			//on attend un nombre de ms
			try {
				Thread.sleep((int)(delay*1000));
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			
		}
	}
	
	/**
	 * Arreter le thread
	 */
	public void stop(){
		finished = true;
	}

}
